package pe.gob.mtpe.construcsys.mybatis.implementacion;

import java.util.ArrayList;
import java.util.List;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import pe.gob.mtpe.construcsys.bean.ParamConsultaReqxretcc;
import pe.gob.mtpe.construcsys.bean.Reqxretcc;
import pe.gob.mtpe.construcsys.mybatis.comun.MyBatisConnectionFactory;
import pe.gob.mtpe.construcsys.mybatis.interfase.INTReqXRetcc;

public class IMPReqXRetcc implements INTReqXRetcc{
	private SqlSessionFactory sqlSessionFactory;
	
	public IMPReqXRetcc(){
		sqlSessionFactory=MyBatisConnectionFactory.getSqlSessionFactory();
	}
	@Override
	public String insertar(Reqxretcc reqxretcc) throws Exception {
		SqlSession session = sqlSessionFactory.openSession();
		String mensaje="";
		try {
			session.insert("ReqXRetcc.insertarReqxretcc", reqxretcc);
			session.commit();
		} catch (Exception e) {
			System.out.println("Error en IMPReqXRetcc>insertar: "+e.getMessage());	
			mensaje=e.getMessage();	
			session.rollback();
		} finally {
			session.close();
		}
		return mensaje;
	}

	@Override
	public String actualizar(Reqxretcc reqxretcc) throws Exception {
		SqlSession session = sqlSessionFactory.openSession();
		String mensaje="";
		try {
			session.update("ReqXRetcc.actualizarReqxretcc", reqxretcc);
			session.commit();
		} catch (Exception e) {
			System.out.println("Error en IMPReqXRetcc>actualizar: "+e.getMessage());	
			mensaje=e.getMessage();	
			session.rollback();
		} finally {
			session.close();
		}
		return mensaje;
	}

	@Override
	public String eliminar(Reqxretcc reqxretcc) throws Exception {
		SqlSession session = sqlSessionFactory.openSession();
		String mensaje="";
		try {
			session.delete("ReqXRetcc.eliminarFisicoReqXRetcc", reqxretcc);
			session.commit();
		} catch (Exception e) {
			System.out.println("Error en IMPReqXRetcc>eliminar: "+e.getMessage());	
			mensaje=e.getMessage();	
			session.rollback();
		} finally {
			session.close();
		}
		return mensaje;
	}

	@Override
	public List<Reqxretcc> listar(ParamConsultaReqxretcc parametro)
			throws Exception {
		SqlSession session=sqlSessionFactory.openSession();
		List<Reqxretcc>  lista=new ArrayList<Reqxretcc>();
		try {				
			lista=session.selectList("ReqXRetcc.consultaReqxretcc", parametro);		
		} catch (Exception e) {
			System.out.println("Error en IMPReqXRetcc>listar: "+e.getMessage());			
		} finally {
			session.close();
		}
		return lista;
	}

	@Override
	public Reqxretcc obtener(ParamConsultaReqxretcc Reqxretcc) throws Exception {
		SqlSession session=sqlSessionFactory.openSession();
		Reqxretcc  respuesta=new Reqxretcc();
		try {				
			respuesta=session.selectOne("ReqXRetcc.consultaReqxretcc", Reqxretcc);		
		} catch (Exception e) {
			System.out.println("Error en IMPReqXRetcc>obtener: "+e.getMessage());			
		} finally {
			session.close();
		}
		return respuesta;
	}

}
